Computers pervade virtually every aspect of an individual's life. One aspect that has been significantly impacted is the ability to store and retrieve information. Classically, in order to store and retrieve information, a user would use a filing cabinet with drawers filled with folders. Inside the folders are the files that a user stores. To store a file, the user identifies the appropriate drawer. Next, the user would identify the correct folder before physically placing the file into the drawer. In order to retrieve a file, the user opens the appropriate drawer, then the appropriate folder, and finally pulls the file out of the folder. The classical technique relies upon the organizational skills of the user. Specifically, the user typically has an organizational system for filing files (e.g., alphabetically, by category, etc.).
In keeping with the filing cabinet metaphor, computers also allow for storing and maintaining files. Specifically, computers maintain the hierarchy of drawers, folders, and files with directories, sub-directories, and files. However, whereas the hierarchy is typically three layers deep for a filing cabinet, the hierarchy maintained on a computer may be virtually infinitely deep. Specifically, a directory on a user's computer often has one or more sub-directories.
For example, a computer may have a directory for each user. Inside the user directory are directories corresponding to the classifications of projects upon which the user is working. Inside the project classifications directory are sub-directories for each project. Inside the project directories are sub-directories corresponding to the subparts of a project, etc. Thus, the computers rely on the individual's organizational skills more than the physical filing cabinet.
In order to alleviate the requirement on a user to have organizational skills, several techniques are employed by developers of interfaces to the access and maintain user's files. For example, many operating systems have a directory that is specifically reserved for the user's files and separate from the system files. By separating the system files from the user's files, the user has the option of viewing only the files pertinent to the user. In another example, applications will often automatically create a directory reserved for the user's files that are associated with that application. When the user requests to open a file within the application, the directory created by the application for the user is opened. Thus, interfaces to directories may assist the user to access files.